<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/10 0010
 * Time: 17:19
 */

namespace App\Models\Admin;

use Maatwebsite\Excel\Facades\Excel;

/**
 * 工具类
 * Class Tools
 * @package App\Models\Admin
 */
class Tools
{
    /**
     * 验证手机号
     * @param $mobilephone
     * @return bool
     */
     public static function checkMobileValidity($mobilephone){
        $exp = "/^13[0-9]{1}[0-9]{8}$|15[012356789]{1}[0-9]{8}$|17[0-9]{1}[0-9]{8}$|18[012356789]{1}[0-9]{8}$|14[57]{1}[0-9]$/";
        if(preg_match($exp,$mobilephone)){
            return true;
        }else{
            return false;
        }
    }

    public static function getBankName($code){
        $bankList=array(
            '102' => '中国工商银行',
            '103' => '中国农业银行',
            '104' => '中国银行',
            '105' => '中国建设银行',
            '201' => '国家开发银行',
            '202' => '中国进出口银行',
            '203' => '中国农业发展银行',
            '413' => '广州银行',
            '301' => '交通银行',
            '302' => '中信银行',
            '303' => '中国光大银行',
            '304' => '华夏银行',
            '305' => '中国民生银行',
            '306' => '广东发展银行',
            '307' => '平安银行',
            '308' => '招商银行',
            '309' => '兴业银行',
            '310' => '上海浦东发展银行',
            '313' => '城市商业银行',
            '314' => '农村商业银行',
            '315' => '恒丰银行',
            '316' => '浙商银行',
            '317' => '农村合作银行',
            '318' => '渤海银行股份有限公司',
            '319' => '徽商银行股份有限公司',
            '320' => '镇银行有限责任公司',
            '401' => '城市信用社',
            '402' => '农村信用社（含北京农村商业银行）',
            '403' => '中国邮政储蓄银行',
            '501' => '汇丰银行',
            '502' => '东亚银行',
            '503' => '南洋商业银行',
            '504' => '恒生银行(中国)有限公司',
            '505' => '中国银行（香港）有限公司',
            '506' => '集友银行有限公司',
            '507' => '创兴银行有限公司',
            '509' => '星展银行（中国）有限公司',
            '510' => '永亨银行（中国）有限公司',
            '512' => '永隆银行',
            '531' => '花旗银行（中国）有限公司',
            '532' => '美国银行有限公司',
            '533' => '摩根大通银行(中国)有限公司',
            '561' => '三菱东京日联银行(中国）有限公司',
            '563' => '日本三井住友银行股份有限公司',
            '564' => '瑞穗实业银行（中国）有限公司',
            '565' => '日本山口银行股份有限公司',
            '591' => '韩国外换银行股份有限公司',
            '593' => '友利银行(中国)有限公司',
            '594' => '韩国产业银行',
            '595' => '新韩银行(中国)有限公司',
            '596' => '韩国中小企业银行有限公司',
            '597' => '韩亚银行（中国）有限公司',
            '621' => '华侨银行（中国）有限公司',
            '622' => '大华银行（中国）有限公司',
            '623' => '星展银行（中国）有限公司',
            '631' => '泰国盘谷银行(大众有限公司)',
            '641' => '奥地利中央合作银行股份有限公司',
            '651' => '比利时联合银行股份有限公司',
            '652' => '比利时富通银行有限公司',
            '661' => '荷兰银行',
            '662' => '荷兰安智银行股份有限公司',
            '671' => '渣打银行',
            '672' => '英国苏格兰皇家银行公众有限公司',
            '691' => '法国兴业银行（中国)有限公司',
            '694' => '法国东方汇理银行股份有限公司',
            '695' => '法国外贸银行股份有限公司',
            '711' => '德国德累斯登银行股份公司',
            '712' => '德意志银行（中国）有限公司',
            '713' => '德国商业银行股份有限公司',
            '714' => '德国西德银行股份有限公司',
            '715' => '德国巴伐利亚州银行',
            '716' => '德国北德意志州银行',
            '732' => '意大利联合圣保罗银行股份有限公司',
            '741' => '瑞士信贷银行股份有限公司',
            '742' => '瑞士银行',
            '751' => '加拿大丰业银行有限公司',
            '752' => '加拿大蒙特利尔银行有限公司',
            '761' => '澳大利亚和新西兰银行集团有限公司  ',
            '771' => '摩根士丹利国际银行（中国）有限公司',
            '775' => '联合银行(中国)有限公司',
            '776' => '荷兰合作银行有限公司',
            '781' => '厦门国际银行',
            '782' => '法国巴黎银行（中国）有限公司',
            '785' => '华商银行',
            '787' => '华一银行',
            '969' => '(澳门地区)银行',
            '989' => '(香港地区)银行',
        );
        if(array_key_exists($code,$bankList)){
            return $bankList[$code];
        }else{
            return '未知';
        }
    }

    /**
     * 通用导出EXCEL
     *
     * @param $fileName
     * @param array $firstRow
     * @param array $content
     */
    public static function exportFileNormal($fileName,array $firstRow,array $content){
        Excel::create($fileName,function ($excel) use($firstRow,$content){
            $excel->sheet('导出表',function ($sheet) use($firstRow,$content){
                $sheet->rows(array(
                    $firstRow
                ));
                //同时增加多行
                $sheet->rows($content);
                $sheet->setAutoSize(true);
            });
        })->download('xls');
        exit();
    }

    /**
     * 分组统计总数
     *
     * @param array $arrObject
     * @param $attr
     * @param string $countAttr
     * @return array
     */
    public static function getGroupCountByAttr(array $arrObject, $attr, $countAttr = '')
    {
        $result = [];
        if (empty($arrObject) || !property_exists($arrObject[0], $attr)) {
            return $result;
        }
        foreach ($arrObject as $key => $val) {
            if (key_exists($val->$attr, $result)) {
                if ($countAttr) {
                    $result[$val->$attr] += $val->$countAttr;
                } else {
                    $result[$val->$attr] += 1;
                }
            } else {
                if ($countAttr) {
                    $result[$val->$attr] = $val->$countAttr;
                } else {
                    $result[$val->$attr] = 1;
                }

            }
        }
        ksort($result);
        return $result;
    }

    /**
     * 获取一段时间的数组
     *
     * @param int $days
     * @param int $start
     * @return array
     */
    public static function getEveryDay(int $days,int $start):array {
        $tmp=[];
        for ($i=0;$i<$days;$i++){
            $tmp[]=date('Y-m-d',strtotime("-$i days",$start));
        }
        return array_reverse($tmp);
    }

    /**
     * 获取每一天的数值
     *
     * @param $dayArr
     * @param $source
     * @return array
     */
    public static function getEveryDayVal(array $dayArr,array $source):array {
        $tmp=[];
        foreach ($dayArr as $item){
            $tmp[]=array_key_exists($item,$source)?$source[$item]:0;
        }
        return $tmp;
    }

}